// miniprogram/pages/signAdd/signAdd.js
const db = wx.cloud.database()

Page({

    /**
     * 页面的初始数据
     */
    data: {
        Height: 0,
        scale: 13,
        latitude: "",
        longitude: "",
        address: '',
        addressName: '',
        markers: [],
        controls: [{
                id: 1,
                iconPath: '/images/minus.png',
                position: {
                    left: 320,
                    top: 100 - 50,
                    width: 20,
                    height: 20
                },
                clickable: true
            },
            {
                id: 2,
                iconPath: '/images/add.png',
                position: {
                    left: 340,
                    top: 100 - 50,
                    width: 20,
                    height: 20
                },
                clickable: true
            }
        ],
        circles: [],
        name: '',
        number: '',
        imgLocalPath: '',
        benrenImg: wx.getStorageSync('user').studentImg,
        compResult: '', //查询人脸对比显示的结果
        image1Code: '',
        image2Code: '',
        tempimgSrc: '',
        score: 0,
    },

    //拍照或选图片
    paizhao: function () {
        wx.chooseImage({
            count: 1,
            sizeType: ['original', 'compressed'],
            sourceType: ['album', 'camera'],
            success: res => {
                console.log(res)
                // tempFilePath可以作为img标签的src属性显示图片
                const tempFilePaths = res.tempFilePaths
                // tempFilePaths是图片文件临时数组 tempFilePaths[0]
                // 选择这个图片的位置，显示出来
                // 刚刚选择的或拍照形成的图片的本地的地址 tempFilePaths[0]
                this.setData({
                    imgLocalPath: tempFilePaths[0]
                })
            },
            fail: res => {
                console.log("失败", res)
            }
        })
    },

    getName: function (e) {
        console.log(e)
        this.setData({
            name: e.detail.value
        })
    },
    getNumber: function (e) {
        console.log(e)
        this.setData({
            number: e.detail.value
        })
    },
    //立即签到
    signAdd: function () {

        wx.chooseLocation({
            latitude: this.data.latitude,
            longitude: this.data.longitude,
            success: res => {
                console.log(res)
            },
            err:res=>{
                console.log(res)
            }})



        return;
        if (this.data.imgLocalPath == '') {
            wx.showToast({
                title: '请先打卡拍照',
            })
            return;
        }

        //处理云存储上的图片装base64
        wx.cloud.getTempFileURL({
            fileList: [this.data.benrenImg],
            success: res => {
                // console.log(res, '临时链接')
                this.setData({
                    tempimgSrc: res.fileList[0].tempFileURL
                })
                wx.request({
                    url: this.data.tempimgSrc,
                    responseType: 'arraybuffer', //最关键的参数，设置返回的数据格式为arraybuffer
                    success: res => {
                        //把arraybuffer转成base64
                        let base64 = wx.arrayBufferToBase64(res.data);
                        //不加上这串字符，在页面无法显示的哦
                        //   base64　= 'data:image/jpeg;base64,' + base64　
                        //打印出base64字符串，可复制到网页校验一下是否是你选择的原图片 
                        //   console.log(base64)　
                        this.setData({
                            image1Code: base64
                        })
                        //处理选择的或拍照的照片转base64
                        wx.getFileSystemManager().readFile({
                            filePath: this.data.imgLocalPath,
                            encoding: "base64",
                            success: res => {
                                this.setData({
                                    image2Code: res.data
                                })
                                //图片对比
                                //调用百度智能云接口，对比图片
                                let accessToken = '24.c42e36d2d7a4d7129a10b9e388ff6cda.2592000.1624680406.282335-24255402'
                                let sendUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/match?access_token=' + accessToken
                                var temp1 = [{
                                        image: this.data.image1Code,
                                        image_type: 'BASE64'
                                    },
                                    {
                                        image: this.data.image2Code,
                                        image_type: 'BASE64'
                                    }
                                ]
                                wx.request({
                                    url: sendUrl,
                                    method: "POST",
                                    data: temp1,
                                    header: {
                                        'content-type': 'application/json', // 默认值
                                        'charset': 'UTF-8'
                                    },
                                    success: res => {
                                        console.log(res)
                                        if(res.data.result == null){
                                            wx.showToast({
                                              title: '请上传人脸照片或自拍',
                                            })
                                            return
                                        }
                                        if (res.data.result.score > 80) {
                                            this.setData({
                                                compResult: "同一个人" + "score=" + res.data.result.score,
                                                score: res.data.result.score
                                            })
                                            wx.showToast({
                                                title: '人脸对比成功',
                                            })
                                            //输出当前位置的经纬度
                                            console.log('经度', this.data.longitude)
                                            console.log('维度', this.data.latitude)

                                            //必须先填入姓名和学号,直接显示，不需要填入了
                                            // if (this.data.number == '' || this.data.name == '') {
                                            //     wx.showModal({
                                            //         title: '请填写姓名和学号',
                                            //     })
                                            //     return;
                                            // }

                                            // 打开地图选择位置 
                                            wx.chooseLocation({
                                                latitude: this.data.latitude,
                                                longitude: this.data.longitude,
                                                success: res => {
                                                    console.log(res)
                                                    //必须选择位置
                                                    if (res.name == '') {
                                                        wx.showModal({
                                                            title: '请选择位置',
                                                        })
                                                        return;
                                                    }
                                                    //保存用户选择的位置的名称
                                                    this.setData({
                                                        address: res.address,
                                                        addressName: res.addressName
                                                    })
                                                    // 1. 上传图片
                                                    // 2. 保存图片地址
                                                    // 随机生成一个图片文件名，作为上传到云端的文件名
                                                    let newFile = Date.parse(new Date())
                                                    console.log(newFile)
                                                    wx.cloud.uploadFile({
                                                        cloudPath: newFile + ".png", // 云端保存的图片文件名
                                                        filePath: this.data.imgLocalPath, // 要上传的图片的本地的文件路径   
                                                        success: res => {
                                                            console.log(res)
                                                            let fileID = res.fileID //云端图片的地址
                                                            //记录当前用户的打卡记录
                                                            db.collection('signRecord').add({
                                                                data: {
                                                                    latitude: this.data.latitude,
                                                                    longitude: this.data.longitude,
                                                                    name: this.data.name,
                                                                    number: this.data.number,
                                                                    addressName: this.data.addressName,
                                                                    address: this.data.address,
                                                                    nickName: wx.getStorageSync('user').nickName,
                                                                    openid: wx.getStorageSync('user').openid,
                                                                    imgUrl: wx.getStorageSync('user').imgUrl,
                                                                    //图片的地址,dakaImg 该字段是新增的字段
                                                                    dakaImg: fileID

                                                                }
                                                            }).then(res => {
                                                                console.log("打卡成功", res)
                                                                wx.showToast({
                                                                    title: '成功！',
                                                                    duration: 6000,
                                                                    success: (res => {
                                                                        this.setData({
                                                                            number: '',
                                                                            name: ''
                                                                        })
                                                                        wx.navigateBack()
                                                                    })
                                                                })

                                                            }).catch(res => {
                                                                console.log("打卡失败", res)
                                                            })

                                                        },
                                                        fail: err => {
                                                            console.log(err)
                                                        }
                                                    })
                                                }
                                            })

                                        } else {
                                            this.setData({
                                                compResult: '不是同一个人' + "score=" + res.data.result.score,
                                                score: res.data.result.score
                                            })
                                            wx.showToast({
                                                title: '人脸对比失败',
                                            })
                                            return
                                        }
                                    },
                                    fail: res => {
                                        console.log(res)
                                    }
                                })

                            }
                        })
                    }
                })
            },
            fail(err) {
                console.log(err)
            }
        })


    },
    regionchange(e) {
        console.log("regionchange===" + e.type)
    },
    //点击merkers
    markertap(e) {
        console.log(e.markerId)

        wx.showActionSheet({
            itemList: ["A"],
            success: function (res) {
                console.log(res.tapIndex)
            },
            fail: function (res) {
                console.log(res.errMsg)
            }
        })
    },

    //点击缩放按钮动态请求数据
    controltap(e) {
        var that = this;
        console.log("scale===" + this.data.scale)
        if (e.controlId === 1) {
            // if (this.data.scale === 13) {
            that.setData({
                scale: --this.data.scale
            })
            // }
        } else {
            //  if (this.data.scale !== 13) {
            that.setData({
                scale: ++this.data.scale
            })
            // }
        }

    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        //直接读取当前登录的用户的学号和姓名
        this.setData({
            name: wx.getStorageSync('user').name,
            number: wx.getStorageSync('user').number
        })

        this.setData({
            benrenImg: wx.getStorageSync('user').studentImg,
        })

        var _this = this;

        wx.getSystemInfo({
            success: function (res) {
                //设置map高度，根据当前设备宽高满屏显示
                _this.setData({
                    view: {
                        // Height: res.windowHeight
                        Height: 200
                    }

                })

            }
        })

        wx.getLocation({
            type: 'wgs84', // 默认为 wgs84 返回 gps 坐标，gcj02 返回可用于 wx.openLocation 的坐标
            success: function (res) {

                _this.setData({
                    latitude: res.latitude,
                    longitude: res.longitude,
                    markers: [{
                        id: "1",
                        latitude: res.latitude,
                        longitude: res.longitude,
                        width: 50,
                        height: 50,
                        iconPath: "/images/map-filling.png",
                        title: "哪里"

                    }],
                    circles: [{
                        latitude: res.latitude,
                        longitude: res.longitude,
                        color: '#FF0000DD',
                        fillColor: '#7cb5ec88',
                        radius: 3000,
                        strokeWidth: 1
                    }]

                })
            }

        })

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})